import App from './App'
import uView from "uview-ui";
import configPath from './common/config/config.js'
import api from '@/common/request/index'
import $store from '@/common/store/index.js'
import $helpers from '@/common/utils/helpers.js'
import dateUtil from '@/common/utils/date-util.js'
import $login from '@/common/utils/login.js'
let mpShare = require('uview-ui/libs/mixin/mpShare.js')
import wsRequest from '@/common/utils/websocket.js'

let websocket = new wsRequest()

import $bluetooth  from "@/common/utils/linkBluetooth.js";
import $mQrCode from '@/common/utils/wxqrcode.js'
import $deviceTypeEnum from '@/common/enum/device-type.enum.js'
import $merchantStatusEnum from '@/common/enum/merchant-status-enum.js'
import $photoTypeEnum from '@/common/enum/photo-type.enum.js'
import $accountTypeEnum from '@/common/enum/account-type.enum.js'
import $merchantTypeEnum from '@/common/enum/merchant-type.enum.js'
import $merchantInfoUploadStateEnum from '@/common/enum/merchant-info-upload-state.enum.js'
import $merchantStorePackageModelEnum from '@/common/enum/merchant-store-package-model.enum.js'
import $payCompanyEnum from '@/common/enum/pay-company.enum.js'
import $orderStatusEnum from '@/common/enum/order-status.enum.js'
import $channelTypeEnum from '@/common/enum/channel-type.enum.js'
import $consumeRecordStatusEnum from '@/common/enum/consume-record-status.enum.js'
import $pageCommunicateKeyEnum from '@/common/enum/page-communicate-key.enum.js'
import $storageKeyEnum from '@/common/enum/storage-key.enum.js'
import $activityTypeEnum from '@/common/enum/activity-type.enum.js'
import $productFunTypeEnum from '@/common/enum/product-fun-type.enum.js'
import $operateTypeEnum from '@/common/enum/operate-type.enum.js'
import $consumeRecordTypeEnum from '@/common/enum/consume-record-type.enum.js'
import $qualificationTypeEnum from '@/common/enum/qualification-type-tnum.js'
import $paymentChannelsEnum from '@/common/enum/payment-channels-enum.js'
import $memberSortEnum from '@/common/enum/member-sort.enum.js'
import $batchOperationDeviceTypeEnum from '@/common/enum/batch-operation-device-type-enum.js'
import $ticketPackageTypeEnum from '@/common/enum/ticket-package-type-enum.js'
import $commodityTypeTypeEnum from '@/common/enum/commodity-type.enum.js'
import $mqttReplyQueryResultCodeEnum from '@/common/enum/mqtt-reply-query-result-code.enum.js'
import $orderShipmentStatusEnum from '@/common/enum/order-shipment-status.enum.js'
import $commodityStockRecordSecondTypeEnum from '@/common/enum/commodity-stock-record-second-type.enum.js'
import $commodityStockRecordFirstTypeEnum from '@/common/enum/commodity-stock-record-first-type.enum.js'
import $commodityStockRecordStatusEnum from '@/common/enum/commodity-stock-record-status.enum.js'
import $merchantAliEnum from '@/common/enum/merchant-ali.enum.js'
import $merchantWechatEnum from '@/common/enum/merchant-wechat.enum.js'
import $orderMchTypeEnum from '@/common/enum/order-mchType.enum.js'
import $memberBalanceTypeEnum from '@/common/enum/member-balance-type.enum.js'
import $lotteryRecordSecondaryTypeEnum from '@/common/enum/lottery-record-secondary-type.enum.js'
import $memberIntegralRecordSecondaryTypeEnum from '@/common/enum/member-integral-record-secondary-type.enum.js'
import $moneyBalanceRecordSecondaryTypeEnum from '@/common/enum/money-balance-record-secondary-type.enum.js'
import $commodityGroupTypeEnum from '@/common/enum/commodity-group-type.enum.js'
import $socketMessageTypeEnum from '@/common/enum/socket-message-type.enum.js'
import $actionType from '@/common/enum/action-type.enum.js'
import $permissionPlatformTypeEnum from '@/common/enum/permission-platform-type.enum.js'
import $statsBranchIdEnum from '@/common/enum/stats-branchId.enum.js'
import $searchHistoryFunTypeEnum from '@/common/enum/search-history-funType.enum.js'


Vue.prototype.$api = api;
Vue.prototype.$store = $store;
Vue.prototype.$helpers = $helpers;
Vue.prototype.$login = $login;
Vue.prototype.$date = dateUtil;
Vue.prototype.$mQrCode = $mQrCode;
Vue.prototype.$socket = websocket
Vue.prototype.$deviceTypeEnum = $deviceTypeEnum;
Vue.prototype.$merchantStatusEnum = $merchantStatusEnum;
Vue.prototype.$photoTypeEnum = $photoTypeEnum;
Vue.prototype.$accountTypeEnum = $accountTypeEnum;
Vue.prototype.$merchantTypeEnum = $merchantTypeEnum;
Vue.prototype.$merchantInfoUploadStateEnum = $merchantInfoUploadStateEnum;
Vue.prototype.$merchantStorePackageModelEnum = $merchantStorePackageModelEnum;
Vue.prototype.$payCompanyEnum = $payCompanyEnum;
Vue.prototype.$orderStatusEnum = $orderStatusEnum;
Vue.prototype.$channelTypeEnum = $channelTypeEnum;
Vue.prototype.$consumeRecordStatusEnum = $consumeRecordStatusEnum;
Vue.prototype.$pageCommunicateKeyEnum = $pageCommunicateKeyEnum;
Vue.prototype.$storageKeyEnum = $storageKeyEnum;
Vue.prototype.$activityTypeEnum = $activityTypeEnum;
Vue.prototype.$productFunTypeEnum = $productFunTypeEnum;
Vue.prototype.$operateTypeEnum = $operateTypeEnum;
Vue.prototype.$consumeRecordTypeEnum = $consumeRecordTypeEnum;
Vue.prototype.$qualificationTypeEnum = $qualificationTypeEnum;
Vue.prototype.$paymentChannelsEnum = $paymentChannelsEnum;
Vue.prototype.$memberSortEnum = $memberSortEnum;
Vue.prototype.$batchOperationDeviceTypeEnum = $batchOperationDeviceTypeEnum;
Vue.prototype.$ticketPackageTypeEnum = $ticketPackageTypeEnum;
Vue.prototype.$commodityTypeTypeEnum = $commodityTypeTypeEnum;
Vue.prototype.$mqttReplyQueryResultCodeEnum = $mqttReplyQueryResultCodeEnum;
Vue.prototype.$orderShipmentStatusEnum = $orderShipmentStatusEnum;
Vue.prototype.$commodityStockRecordSecondTypeEnum = $commodityStockRecordSecondTypeEnum;
Vue.prototype.$commodityStockRecordFirstTypeEnum = $commodityStockRecordFirstTypeEnum
Vue.prototype.$commodityStockRecordStatusEnum = $commodityStockRecordStatusEnum
Vue.prototype.$merchantAliEnum = $merchantAliEnum
Vue.prototype.$merchantWechatEnum = $merchantWechatEnum
Vue.prototype.$orderMchTypeEnum = $orderMchTypeEnum
Vue.prototype.$memberBalanceTypeEnum = $memberBalanceTypeEnum
Vue.prototype.$lotteryRecordSecondaryTypeEnum = $lotteryRecordSecondaryTypeEnum
Vue.prototype.$memberIntegralRecordSecondaryTypeEnum = $memberIntegralRecordSecondaryTypeEnum
Vue.prototype.$moneyBalanceRecordSecondaryTypeEnum = $moneyBalanceRecordSecondaryTypeEnum
Vue.prototype.$commodityGroupTypeEnum = $commodityGroupTypeEnum
Vue.prototype.$socketMessageTypeEnum = $socketMessageTypeEnum
Vue.prototype.$actionType = $actionType
Vue.prototype.$bluetooth = $bluetooth;
Vue.prototype.$permissionPlatformTypeEnum = $permissionPlatformTypeEnum;
Vue.prototype.$statsBranchIdEnum = $statsBranchIdEnum
Vue.prototype.$searchHistoryFunTypeEnum = $searchHistoryFunTypeEnum

import Vue from 'vue'
Vue.config.productionTip = false
Vue.use(uView)
Vue.mixin(mpShare)

Vue.prototype.$configPath = configPath;

App.mpType = 'app'
export const eventBus = new Vue()
const app = new Vue({
    ...App,
	$store
})
app.$mount()
